xen: arm: Fix handling of ICC_{SGI1R,SGI0R,ASGI1R}_EL1
authorIan Campbell <ian.campbell@citrix.com>
Mon, 30 Mar 2015 11:18:08 +0000 (12:18 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Fri, 8 May 2015 10:50:48 +0000 (11:50 +0100)
commit49e65b1ca730eae7691c91c7bbdb0787521cb13e
tree444f90ff50ca63d0a0e697f1ec949e475e798640
parentd9a08620e6c267940fa3421b4d0915812d5359d3
xen: arm: Fix handling of ICC_{SGI1R,SGI0R,ASGI1R}_EL1

Having injected an undefined instruction we don't want to also advance
pc. So return.

The ICC_{SGI0R,ASGI1R}_EL1 case was previously missing a break, so
would have fallen through to the default case and injected a second
undef, corrupting SPSR_EL1 and ELR_EL1 for the guest.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Julien Grall <julien.grall@citrix.com>
xen/arch/arm/traps.c